package routers

import (
	"zero_six/house/controllers"
	"zero_six/house/utils"

	"github.com/beego/beego/v2/server/web/context"

	beego "github.com/beego/beego/v2/server/web"
)

func init() {

	//beego.BConfig.WebConfig.Session.SessionProvider = "file"
	// 对用户访问的资源进行控制
	// 例如：用户未登录、是不能访问新建商品

	//beego.InsertFilter(规则，位置（在上面时候进行过滤）,过滤逻辑)
	//beego.InsertFilter("/createGoods", beego.BeforeRouter, func(ctx *context.Context) {
	//	fmt.Println("进入到过滤器。。。。。")
	//	fmt.Println(ctx.Input.Session("username"))
	//	// 判断用户是否登录
	//	userid := ctx.Input.Session("userid")
	//	if userid == nil {
	//		ctx.WriteString("请先登录")
	//		return
	//	}
	//
	//})
	// beego 的过滤器 /*
	beego.InsertFilter("/*", beego.BeforeExec, func(ctx *context.Context) {
		// 有部分路由、不需要验证 白名单 黑名单
		// 白名单
		white := map[string]string{
			"/":                  "/",
			"/login":             "/login",
			"/createGoods":       "/createGoods",
			"/mobileByCodeLogin": "mobileByCodeLogin",
		}

		if white[ctx.Request.RequestURI] == "" && !utils.VerifyToken(ctx) {
			ctx.WriteString("请先登录")
			return
		}
	})

	beego.Router("/", &controllers.MainController{})

	beego.Router("/login", &controllers.UserController{}, "post:Login")
	beego.Router("/createGoods", &controllers.GoodsController{}, "post:CreateGoods")

	beego.Router("/updateUserInfo", &controllers.UserController{}, "post:UpdateUserInfo") // 更新用户信息

	beego.Router("/sendCode", &controllers.UserController{}, "post:SendCode")
	beego.Router("/mobileByCodeLogin", &controllers.UserController{}, "post:MobileByCodeLogin")
}
